{	Problem: http://codeforces.ru/problemset/problem/63/D
 	Verdict: Accepted
}
uses SysUtils, Math;
var 
    i,j,k,g,a,b,c,d,n,cc:longint;
    t:array[0..1000010] of longint;
    r:array[0..110,0..110] of char;
begin
{$ifndef online_judge}
reset(input,'input.txt');
rewrite(output,'output.txt');
{$endif}
read(a,b,c,d,n);
for i:=1 to n do read(t[i]);
if b>d then k:=b else k:=d;
g:=a+c;
for i:=1 to k do 
    for j:=1 to g do r[i][j]:='.';
writeln('YES');
cc:=1;
if k=b then begin
    i:=d;
    if odd(d) then begin
        while i>0 do begin
            for j:=g downto a+1 do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc);
            end;
            dec(i);
            if i>0 then begin
                for j:=a+1 to g do begin
                    r[i][j]:=chr(cc+96);
                    dec(t[cc]);
                    if t[cc]=0 then inc(cc)
                end;
                dec(i);
            end;
        end;
    end else begin
        while i>0 do begin
            for j:=a+1 to g do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc)
            end;
            dec(i);
            if i>0 then begin
                for j:=g downto a+1 do begin
                    r[i][j]:=chr(cc+96);
                    dec(t[cc]);
                    if t[cc]=0 then inc(cc);
                end;
                dec(i);
            end;
        end;
    end;
    i:=1;
    while i<=b do begin
        for j:=a downto 1 do begin
            r[i][j]:=chr(cc+96);
            dec(t[cc]);
            if t[cc]=0 then inc(cc);
        end;
        inc(i);
        if i<=b then begin
            for j:=1 to a do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc);
            end;
            inc(i);
        end;
    end;
end else begin
    i:=b;
    if odd(b) then begin
        while i>0 do begin
            for j:=1 to a do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc);
            end;
            dec(i);
            if i>0 then begin
                for j:=a downto 1 do begin
                    r[i][j]:=chr(cc+96);
                    dec(t[cc]);
                    if t[cc]=0 then inc(cc);
                end;
                dec(i);
            end;
        end;    
    end else begin
        while i>0 do begin
            for j:=a downto 1 do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc);
            end;
            dec(i);
            if i>0 then begin
                for j:=1 to a do begin
                    r[i][j]:=chr(cc+96);
                    dec(t[cc]);
                    if t[cc]=0 then inc(cc);
                end;
                dec(i);
            end;
        end;
    end;    
    i:=1;
    while i<=d do begin
        for j:=a+1 to g do begin
            r[i][j]:=chr(cc+96);
            dec(t[cc]);
            if t[cc]=0 then inc(cc);
        end;
        inc(i);
        if i<=d then begin
            for j:=g downto a+1 do begin
                r[i][j]:=chr(cc+96);
                dec(t[cc]);
                if t[cc]=0 then inc(cc);
            end;
            inc(i);
        end;
    end;
end;
for i:=1 to k do begin
    for j:=1 to g do write(r[i][j]);
    writeln;
end;
end.  